home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / test / showcmd.mpp < prev    next >
Encoding:
Text File  |  1993-10-07  |  2.1 KB  |  96 lines

  1. MODULE ShowCMD;
  2. __IMP_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. (* Test und Anwendungsbeispiel fuer Modul 'cmdline'.
  13.  *
  14.  * hk, 02-Okt-92
  15.  *)
  16.  
  17. FROM PORTAB IMPORT
  18. (* CONST*) NULL;
  19.  
  20. FROM types IMPORT
  21. (* TYPE *) StrPtr, StrArray, StrRange, ArrayRange;
  22.  
  23. FROM cstr IMPORT
  24. (* PROC *) AssignCToM2;
  25.  
  26. FROM DosSystem IMPORT
  27. (* TYPE *) BasePage, BasePtr,
  28. (* VAR  *) BASEP;
  29.  
  30. FROM cmdline IMPORT
  31. (* VAR  *) environ,
  32. (* PROC *) main;
  33.  
  34. FROM Terminal IMPORT
  35. (* PROC *) WriteString, WriteLn, Write, Read;
  36.  
  37. VAR argc : ArrayRange;
  38.     argv : StrArray;
  39.     str  : ARRAY[0..255] OF CHAR;
  40.     i    : ArrayRange;
  41.     c    : CHAR;
  42.     max  : CARDINAL;
  43.     idx  : CARDINAL;
  44.  
  45. BEGIN
  46.  WriteString("Basepage-Kommandozeile:"); WriteLn;
  47.  WriteString("-----------------------"); WriteLn;
  48.  WITH BASEP^ DO
  49.    max := ORD(pCmdlin[0]);
  50.    IF max > 127 THEN
  51.      max := 127;
  52.    END;
  53.    idx := 0;
  54.    Write('"');
  55.    WHILE (idx < max) AND (pCmdlin[idx+1] >= ' ') DO
  56.      Write(pCmdlin[idx+1]);
  57.      INC(idx);
  58.    END;
  59.    Write('"');
  60.    WriteLn;
  61.  END;
  62.  WriteLn;
  63.  
  64.  main(argc, argv);
  65.  
  66.  IF argc = 0 THEN
  67.    WriteString("Kein Speicher frei!"); WriteLn;
  68.  ELSE
  69.    WriteString("Programmname:"); WriteLn;
  70.    WriteString("-------------"); WriteLn;
  71.    AssignCToM2(argv^[0], str);
  72.    Write('"'); WriteString(str); Write('"'); WriteLn;
  73.    WriteLn;
  74.  
  75.    WriteString("Programmargumente:"); WriteLn;
  76.    WriteString("------------------"); WriteLn;
  77.    i := 1;
  78.    WHILE argv^[i] <> NULL DO
  79.      AssignCToM2(argv^[i], str);
  80.      Write('"'); WriteString(str); Write('"'); WriteLn;
  81.      INC(i);
  82.    END;
  83.    WriteLn;
  84.  
  85.    WriteString("Environment:"); WriteLn;
  86.    WriteString("------------"); WriteLn;
  87.    i:=0;
  88.    WHILE environ^[i] <> NULL DO
  89.      AssignCToM2(environ^[i], str);
  90.      Write('"'); WriteString(str); Write('"'); WriteLn;
  91.      INC(i);
  92.    END;
  93.  END;
  94.  Read(c);
  95. END ShowCMD.
  96.